package com.vecspace.dayu.code.ui.httphandler;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.vecspace.dayu.code.ui.model.PageConfigVO;
import com.vecspace.dayu.code.ui.pojo.DataGridColumn;
import com.vecspace.dayu.code.ui.pojo.FormField;
import com.vecspace.dayu.code.ui.service.PageConfigService;
import com.vecspace.dicttable.CodeItem;
import com.vecspace.security.model.LoginContext;
import com.vecspace.web.servlet.model.BaseController;
import com.vecspace.web.servlet.model.HController;
import com.vecspace.web.servlet.model.Param;
import com.vecspace.web.servlet.model.Path;


@HController("dayucode_pageConfigHandler")
public class PageConfigHandler extends BaseController{

	/**获取功能的页面配置信息（一致性获取完整的数据）
	 * 
	 * @param tableId
	 * @param terminalType 取值范围："WEB" "APP" "PAD"
	 * @return
	 * @throws Exception 
	 * @author wanghua
	 */
	@Path("getPageConfigVO")
	public PageConfigVO getPageConfigVO(@Param("tableId")Long tableId, @Param("terminalType")String terminalType) throws Exception {
		return pageConfigService.getPageConfigVOByTable(tableId, terminalType);
	}
	
	/**将数据库表字段转为表格定义字段
	 * 
	 * @param tableColumnIds 
	 * @throws Exception 
	 * @author wanghua
	 */
	@Path("transTableColumnToGridColumn")
	public List<DataGridColumn> transTableColumnToGridColumn(@Param("tableColumnIds")ArrayList<Long> tableColumnIds) throws Exception {
		return pageConfigService.transTableColumnToGridColumn(tableColumnIds);
	}
	
	/**将数据库表字段转为表格定义字段
	 * 
	 * @param tableColumnIds 
	 * @throws Exception
	 * @author wanghua
	 */
	@Path("transTableColumnToFormField")
	public List<FormField> transTableColumnToFormField(@Param("tableColumnIds")ArrayList<Long> tableColumnIds) throws Exception {
		return pageConfigService.transTableColumnToFormField(tableColumnIds);
	}
	
	/**保存页面配置信息
	 * 
	 * @param pageConfigVO
	 * @return 
	 * @throws Exception 
	 * @author wanghua
	 */
	@Path("savePageConfigVO")
	public PageConfigVO savePageConfigVO(@Param("pageConfigVO")PageConfigVO pageConfigVO) throws Exception {
		return pageConfigService.savePageConfigVO(pageConfigVO, LoginContext.getLoginId());
	}
	
	/**获取pagelayoutId下已经定义的代码类型
	 * 
	 * @param pagelayoutId
	 * @return
	 * @throws Exception 
	 * @author wanghua
	 * @reviewer  
	 * @createTime 2021年9月20日 下午5:45:44
	 */
	@Path("getCodeTypes")
	public List<CodeItem> getCodeTypes(@Param("pagelayoutId")Long pagelayoutId) throws Exception{
		return pageConfigService.getCodeTypes(pagelayoutId);
	}
	
	@Autowired
	private PageConfigService pageConfigService;
}
